// // 定义一个接口
// interface ISwim {
//   swimming: () => void
// }
// // 在 对象中使用
// const action: ISwim = {
//   swimming() { }
// }
// // 在函数中使用
// function fn(swim: ISwim) {
// }

// 定义ISwim接口
interface ISwim {
  swimming: () => void
}
interface IFly {
  flying: () => void
}
// 类实现接口
class Animal {

}
// 继承： 只能实现单继承
// 实现：实现接口，类可以实现多个接口
class Fish extends Animal implements ISwim, IFly {
  swimming() {
    console.log('Fish swimming')
  }
  flying() {
    console.log('Fish Eating')
  }
}

// 编写一些公共的API：面向接口编程
//  function swimAction(swimable: Fish) {
//   swimable.swimming(); 
//  }
function swimAction(swimable: ISwim) {
  swimable.swimming()
}
swimAction(new Fish())
swimAction({ swimming: function () { } })


export { }